Machine-Learning Driven Data Analysis Based on Demographics, Risk, and Need

ABSTRACT

A data processing system for recommending insurance plans implements obtaining an electronic copy of demographic information associated with a user; analyzing the demographic information with a first machine learning model to recommend a bundle of insurance policies based on the demographic information, wherein the first machine learning model is configured to group insured people having similar demographics into clusters and to generate the bundle of insurance policies based on predicted medical insurance consumption associated with a respective group into which the model predicts that the first user falls; customizing the recommended bundle of insurance policies based on the demographic information associated with the user to generate a customized bundle of insurance policies; generating an insurance recommendation report that presents the customized bundle of insurance policies to the user; and causing a user interface of a display of a computing device associated with the user to present the insurance recommendation report.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application claims the benefit of priority from pending U.S. patentapplication Ser. No. 17/229,020, filed on Apr. 13, 2021, and entitled“Machine-learning driven Data analysis based on demographics, risk, andneed.”

BACKGROUND

Determining how much insurance coverage and what types of insurancecoverage a person needs can be a confusing and stressful process. Aninsurance plan may include multiple types of policies which providecoverage for various types of claims, such as but not limited to medicalinsurance, dental insurance, accident insurance, hospital indemnityinsurance, and auto insurance. Each of these policies may cover avariety of different types of claims, and the insured may not have acomplete understanding of the minutiae of the coverage provided by eachof the policies. The amounts and types of coverage appropriate for aparticular person may vary significantly based on the individual needsof that person. Furthermore, the coverage may extend to family members,which may further complicate the decision-making process. As a result,the person may select a plan that may not adequately provide for theneeds of the insured. Hence, there is a need for improved systems andmethods that provide a technical solution for solving the technicalproblem of automatically analyzing the insurance needs of a user andproviding recommendations to assist the user in building an insuranceplan that meets the needs of the user.

SUMMARY

An example data processing system according to the disclosure mayinclude a processor and a computer-readable storage medium storingexecutable instructions. The instructions when executed cause theprocessor to perform operations including obtaining an electronic copyof demographic information associated with a user, wherein thedemographic information includes first demographic information providedby the user, demographic information obtained from one or morethird-party data sources, or both; providing the first demographicinformation as an input to a first machine learning model; analyzing thefirst demographic information with the first machine learning model,wherein the first machine learning model is trained to segment peopleinto clusters of people having similar demographics, wherein the firstmachine learning model is configured to analyze the first demographicinformation associated with the user to predict and output a clusterassociated with the user and output predicted medical spendinginformation associated with the predicted cluster; providing thepredicted medical spending information to a recommendation engine togenerate a comprehensive insurance plan for the user comprising aplurality of insurance policies based on the predicted medical spendinginformation; customizing the comprehensive insurance plan based on thefirst demographic information associated with the user to generate acustomized bundle of insurance policies; generating an insurancerecommendation report that presents the customized bundle of insurancepolicies to the user; and causing a user interface of a display of acomputing device associated with the user to present the insurancerecommendation report.

An example method implemented in a data processing system forrecommending insurance plans includes obtaining an electronic copy ofdemographic information associated with a user, wherein the demographicinformation includes first demographic information provided by the user,demographic information obtained from one or more third-party datasources, or both; providing the first demographic information as aninput to a first machine learning model; analyzing the first demographicinformation with the first machine learning model, wherein the firstmachine learning model is trained to segment people into clusters ofpeople having similar demographics, wherein the first machine learningmodel is configured to analyze the first demographic informationassociated with the user to predict and output a cluster associated withthe user and output predicted medical spending information associatedwith the predicted cluster; providing the predicted medical spendinginformation to a recommendation engine to generate a comprehensiveinsurance plan for the user comprising a plurality of insurance policiesbased on the predicted medical spending information; customizing thecomprehensive insurance plan based on the first demographic informationassociated with the user to generate a customized bundle of insurancepolicies; generating an insurance recommendation report that presentsthe customized bundle of insurance policies to the user; and causing auser interface of a display of a computing device associated with theuser to present the insurance recommendation report.

An example computer-readable storage medium according to the disclosureon which are stored instructions which when executed cause a processorof a programmable device to perform operations of obtaining anelectronic copy of demographic information associated with a user,wherein the demographic information includes first demographicinformation provided by the user, demographic information obtained fromone or more third-party data sources, or both; providing the firstdemographic information as an input to a first machine learning model;analyzing the first demographic information with the first machinelearning model, wherein the first machine learning model is trained tosegment people into clusters of people having similar demographics,wherein the first machine learning model is configured to analyze thefirst demographic information associated with the user to predict andoutput a cluster associated with the user and output predicted medicalspending information associated with the predicted cluster; providingthe predicted medical spending information to a recommendation engine togenerate a comprehensive insurance plan for the user comprising aplurality of insurance policies based on the predicted medical spendinginformation; customizing the comprehensive insurance plan based on thefirst demographic information associated with the user to generate acustomized bundle of insurance policies; generating an insurancerecommendation report that presents the customized bundle of insurancepolicies to the user; and causing a user interface of a display of acomputing device associated with the user to present the insurancerecommendation report.

This Summary is provided to introduce a selection of concepts in asimplified form that are further described below in the DetailedDescription. This Summary is not intended to identify key features oressential features of the claimed subject matter, nor is it intended tobe used to limit the scope of the claimed subject matter. Furthermore,the claimed subject matter is not limited to implementations that solveany or all disadvantages noted in any part of this disclosure.

BRIEF DESCRIPTION OF THE DRAWINGS

The drawing figures depict one or more implementations in accord withthe present teachings, by way of example only, not by way of limitation.In the figures, like reference numerals refer to the same or similarelements. Furthermore, it should be understood that the drawings are notnecessarily to scale.

FIG. 1 is a diagram showing an example computing environment in whichthe techniques disclosed herein may be implemented.

FIG. 2 is a diagram of an example architecture that may be used, atleast in part, to implement the claims analysis and adjudication system(CAAS) shown in FIG. 1.

FIG. 3 is a diagram of an example architecture that shows additionaldetails of a CAAS which may be used to implement the CAAS shown in FIGS.1 and 2.

FIG. 4 is a diagram of an example architecture that shows additionaldetails of the CAAS that may be used to implement the CAAS shown inFIGS. 1-3.

FIGS. 5A, 5B, 5C, 5D, 5E, 5F, 5G, and 5H show an example user interfacefor linking a CAAS account to an insurer account.

FIGS. 6A, 6B, 6C, 6D, 6E, 6F, and 6G show an example user interface forpresenting insurance bundle recommendations.

FIG. 7 is a flow chart of an example process for recommending acomprehensive bundle of insurance policies.

FIG. 8 is a block diagram showing an example software architecture,various portions of which may be used in conjunction with varioushardware architectures herein described, which may implement any of thedescribed features.

FIG. 9 is a block diagram showing components of an example machineconfigured to read instructions from a machine-readable medium andperform any of the features described herein.

FIG. 10 is a diagram of an example insurance recommendation report.

DETAILED DESCRIPTION

In the following detailed description, numerous specific details are setforth by way of examples in order to provide a thorough understanding ofthe relevant teachings. However, it should be apparent that the presentteachings may be practiced without such details. In other instances,well known methods, procedures, components, and/or circuitry have beendescribed at a relatively high-level, without detail, in order to avoidunnecessarily obscuring aspects of the present teachings.

Techniques are described herein for machine-learning drivenrecommendation of health and insurance plans that include a bundle ofinsurance policies based on individual demographics, risk, and needs.Building a comprehensive insurance plan that adequately meets the needsof the insured is a complex process. A plan may include a bundle ofinsurance policies that each have a complex list of the types of claimsthat the insurer may cover and the coverage limitations that provide theconditions under which the insurer may cover such claims. To furthercomplicate the process of selecting an appropriate plan, the insured mayneed to take into consideration the needs of family members who willalso be covered by the insurance plan. Furthermore, the insured musttake into consideration the cost associated with each type of coverageto ensure that the selected plan meets the financial needs of the user.Understanding how multiple policies may fit together to meet these needsis a confusing and error prone process. The techniques provided hereinprovide a technical solution to this problem by analyzing demographicinformation for the user, the risk aversiveness of the user, and theinsurance needs of the user using one or more machine learning models toprovide recommendations for insurance plans. The one or more machinelearning models may be trained using demographic data for an insuredpopulation to segment the insured population into clusters of usershaving similar demographics. The model or models may predict anestimated medical spending for the insured user by predicting a clusterinto which the user falls based on the user's demographics and providingthe predicted medical spending for that cluster. The predicted medicalspending for a cluster may include an amount spent and types of claimstypically filed. The predicted medical spending may then be used tocreate a comprehensive insurance plan for the user that includes arecommended bundle of insurance policies based on the predicted medicalspending. The recommended bundle of insurance policies may be customizedfor the user based on the demographic information of the user, the riskaversiveness of the user, and the needs of the user. A technical benefitof this approach is that the machine learning models may recognizepatterns in the insurance consumption and demographic information of theuser to recommend a comprehensive insurance plan that may not otherwisebe evident to a user. The insurance bundle may be presented to the userwith dynamically generated scenarios that support the recommendationwith data associated with the user. A technical benefit of this approachis that the user can readily understand the reasons why each of thepolicies of the bundle of insurance policies was recommended. Anothertechnical benefit provided by the techniques described herein is thatthe machine learning models may be trained using data that has beenparsed and standardized into a standard schema. Furthermore, the data tobe analyzed by the machine learning models may also be parsed andstandardized. As a result, the machine learning models are receivingdata in a format that utilizes descriptions that are consistent with thetraining data used to train the models. Consequently, the predictionsprovided by the models may be significantly improved in comparison tomodels which are not trained using such a technique. The techniquesprovided herein also provide for substantially real-time analysis ofinformation from a combination of data sources that may alsosignificantly improve the predictions provided by the machine learningmodels and provide the user with recommendations that are more likely toprovide for the user's needs. These and other technical benefits of thetechniques disclosed herein will be evident from the discussion of theexample implementations that follow. Furthermore, the techniquesprovided herein satisfy a long-felt need for improving therecommendations that may be made to users for selecting a bundle ofinsurance policies that covers the complex and variable needs of theusers. Furthermore, the solution provided to this problem is rooted incomputer technology to overcome a problem arising in realm of computersystems for providing substantially real-time analysis of demographics,risk, and need to provide the users with recommendations that fit theircurrent needs.

FIG. 1 is a diagram showing an example computing environment 100 inwhich the techniques disclosed herein for insurance claims analysis andadjudication may be implemented. The computing environment 100 mayinclude a claims analysis and adjudication system (CAAS) 105, one ormore client devices 115, one or more insurer portals 125, one or moreprovider portals 135, and one or more third-party data providers 130.The example implementations shown in FIG. 1 includes three clientdevices 115 a, 115 b, and 115 c, but the techniques described herein maybe used with a different number of client devices 115. The clientdevices 115 a, 115 b, and 115 c may communicate with the CAAS 105, theinsurer portals 125, provider portals 135, and/or the third-party dataproviders via the network 120. The CAAS 105 may also communicate withthe client devices 115 a, 115 b, and 115 c, the insurer portals 125, theprovider portals 135, and/or the third-party data providers 130 via thenetwork 120. The network 120 may include one or more wired and/orwireless public networks, private networks, or a combination thereof.The network 120 may be implemented at least in part by the Internet.

The client devices 115 a, 115 b, and 115 c may be used by an insured toaccess the services provided by the CAAS 105, insurance information fromthe insurer portals 125, and/or information from the third-party dataproviders 130. The client devices 115 a, 115 b, and 115 c are each acomputing device that may be implemented as a portable electronicdevice, such as a mobile phone, a tablet computer, a laptop computer, aportable digital assistant device, a portable game console, and/or othersuch devices. The client devices 115 a, 115 b, and 115 c may also beimplemented in computing devices having other form factors, such as adesktop computer, vehicle onboard computing system, a kiosk, apoint-of-sale system, a video game console, and/or other types ofcomputing devices. While the example implementation illustrated in FIG.1 includes three client devices, other implementations may include adifferent number of client devices. The client devices 115 a, 115 b, and115 c may be used to access the applications and/or services provided bythe insurer portals 125 and/or the CAAS 105.

The insurer portals 125 may be provided by insurance providers as ameans for the insured user to access their policy information, makepolicy payments, obtain new policies, to submit claims on existingpolicies, and/or perform other actions related to the managing of theinsured's insurance. An insured user may have policies with multipleinsurers, and thus, may have to access multiple insurer portals 125 toobtain information related to each of their insurance policies.Consequently, the insured user must learn to navigate multiple insuranceportals that may have significantly different layouts in order to accesstheir policy information, submit claims and/or check on claim status, orperform other actions related to their policy.

The service provider portals 135 may provide a means for doctors,dentists, optometrists, and/or other medical professionals to submitclaims to the insurers on behalf of an insured user. The serviceprovider portals 135 may provide means for the providers to check on thestatus of a claim with an insurer. The service provider portals 135 mayalso permit the providers to amend and/or resubmit claims.

The CAAS 105 provides a cloud-based or network-based portal foraccessing the services provided by the CAAS 105. The CAAS 105 may beconfigured to provide secure and delegated access to insurance claimsfor insured users. The CAAS 105 may implement a claims applicationprogramming interface (API) infrastructure that allows the insured usersto access their insurance claims data and to provide various servicessuch as claims analysis and adjudication services, guidance foroptimizing prescription benefits, guidance for optimizing medicalspending account (MSA) usage, guidance for proactive benefitsengagement, services which may assist the insured in selecting a bundleof insurance products that satisfies the insured requirements, and/orother services related to optimizing the insurance coverage andutilization by the insured. Among the services provided by the CAAS 105,the CAAS 105 provides substantially real-time claims analysis andadjudication. The CAAS 105 may utilize a machine-learning model ormodels trained to analyze the claims to guide the user throughsubmitting the claims to the appropriate insurer and to provide otheradvice for optimizing the use of the coverage provided to the user bytheir policies. The CAAS 105 may also respond to changes in thedemographic data of the user and may provide a proposed bundle ofinsurance policies that meet the changing needs of the user. The exampleimplementations which follow provide additional details describing theseand other features of the CAAS 105.

The CAAS 105 may be configured to collect policy and claims informationfor users from the insurer portals 125, to analyze the informationincluded in the policy information to obtain coverage information. Thecoverage information may include which types of claims are covered byeach policy, the limits of coverage provided by each policy, otherinformation that may be used to determine whether an insurer may cover aparticular claim, or a combination thereof. The CAAS 105 may beconfigured to implement a set of secure and authenticated pipelines thatare configured to allow members to link to their accounts with theirinsurance providers to obtain plan information, claims information, orboth. The CAAS 105 may provide a user interface that provides a list ofsupported insurers. The user may select an insurer from the list ofsupported insurers and the user interface guides the user throughsetting up the connection with the user's account with that insurer. Theuser may securely provide authentication details that permit the CAAS105 to securely access the policy information and/or claims informationprovided through the insurer portals 125. The CAAS 105 may access thepolicy information, claims information, or both, analyze thisinformation, and convert the information to a unified and standardizedschema for this information. The standardized information may be storedby the CAAS 105 to provide various services to the user, which will bediscussed in greater detail with respect to the example implementationof the CAAS 105 shown in FIGS. 2 and 3.

The third-party data providers 130 are additional data sources that maybe accessed by the CAAS 105 to obtain additional information for a user.The CAAS 105 may be configured to use the third-party data to supplementinformation collected from the user. The CAAS 105 may be configured tocollect at least some demographic information from the user bypresenting a set of dynamically generated questions to the user. Thequestions presented to the user may be dynamically selected based atleast in part on the user's responses to previous questions, toinformation included in the third-party data, or a combination thereof.The third-party information and/or information that may be collectedfrom the user may include, but is not limited to, the user's medicalhistory, past insurance consumption, the user's financial profile(debts, assets, liabilities), credit history, family information,psychographics, interests, occupation, salary, physical activity, andother information that may be used by the CAAS 105 to facilitateproviding insurance plan recommendations to the user. The CAAS 105 mayquery the third-party data providers 130 for information and mayreformat the data into a standard schema used by the CAAS 105 forstoring and analyzing the data. The CAAS 105 may also be configured todisambiguate the data received from the third-party data sources wherethe data includes information associated with multiple people who may ormay not be the user. Additional details of data disambiguation areprovided in the examples which follow.

FIGS. 5A-5H show an example of the CAAS 105 guiding a user through theprocess of linking the user's account with an insurer to the user's CAASaccount so that the CAAS 105 may obtain policy and claim informationassociated with the user from the insurer portal 125. FIG. 5A shows auser interface 505 for starting the setup process that presentsinformation to the user regarding the account setup process. The usermay click on the “Continue” button to cause the CAAS 105 to advance tothe user interface 510 shown in FIG. 5B. The user interface 510 providesa list of insurers to which the CAAS 105 has been configured to permitthe user to link the CAAS account to the user's account on the insurer'ssystem. The user may select the icon associated with a particularinsurer or type the name of the insurer in the search field. FIGS. 5Cand 5D show that the list of insurers may be narrowed dynamically as theuser types in the search field. FIG. 5E shows an example of a userinterface 515 that may be displayed for the selected insurer. The usermay provide their authentication credentials for the insurer portal andclick submit. The CAAS 105 will attempt to access the insurer portal 125using the provided authentication criteria. FIGS. 5F and 5G show anexample two-factor authentication user interface 520 that may be used tofurther secure access to the user account on the insurer portal 125.Once the user has been authenticated with the insurer's portal, the userinterface 525 may be displayed to confirm that the accounts have beenlinked. The CAAS 105 may then access claims information, policyinformation, and/or other information from the insurer portal 125.

FIG. 2 is a diagram of an example implementation of a CAAS 105 shown inFIG. 1 that shows additional elements of the CAAS 105. The CAAS 105shown in FIG. 2 includes three layers: (1) a raw data layer 205, (2) anevent-based notification layer 250, and (3) an insights layer 290. Theraw data layer 205 may be configured to obtain insurance data for usersfrom various data sources, to convert this data to a unified andstandardized schema, and to store the user data for analysis by theevent-based notification layer 250 and/or the insights layer 290 toprovide various insurance-related services to the users. Additionaldetails of the functions of each of these layers will be described ingreater detail in the examples which follow. In some implementations,the functions of each of these layers may be grouped together into adifferent number of functional layers. Furthermore, the functionality ofeach of the layers may be implemented on separate servers in someimplementations, and the servers may be communicably coupled over publicand/or private network connections to permit the various components ofthe CAAS 105 to exchange and analyze data.

The raw data layer 205 may include a data lake 210, a plan metadata datastore 215, a census data datastore 220, a health savings account (HSA)provider API 225, an insurance plan quote API 230, a prescription API235, a claims and policy API 240, an eligibility API 245, and athird-party data API 280. The APIs provide pipelines for obtaining datathat that the CAAS 105 may use to provide various insurance-relatedservices. User data may be protected by secure and authenticatedpipelines when accessing sensitive data. The CAAS 105 may guide a userthrough setting up authentication with the external data sources toallow the CAAS 105 to securely access the user data.

The data lake 210 may be used to store raw user data, raw claims data,and raw policy data that has been obtained from one or more externaldata sources, such as but not limited to the insurer portals 125 and thethird-party data providers 130. Raw data, as used herein, refers to anoriginal data format in which the data was obtained from the externaldata source. The format of the raw data may depend on the type of dataand the external data source from which the data was obtained. The rawdata may be retained in the data lake 210, and the raw data 210 may beprocessed into a standard schema by one or more parsing engines of theCAAS 205. The standard schema defines a set of logical data structuresthat may be used by the CAAS 205 storing and analyzing data. FIG. 3,which will be discussed in greater detail below, includes two parsingengines, a policy parsing engine 315 and a claims and prescriptionparsing engine 320 for parsing data. While the example shown in FIG. 3includes two separate parsing engines, the functionality of the parsingengines may be combined into a single parsing engine or into more thanthe two parsing engines shown in FIG. 3. The standardized policy datamay be stored in the plan metadata 215.

The policy data may include coverage information, including but notlimited to the types of claims are covered by each policy, the limits ofcoverage provided by each policy, other information that may be used todetermine whether an insurer may cover a particular claim for a user.The census data 220 may include demographic information that iscollected from the user by the CAAS 205, information about the userobtained from third-party data providers 130, information obtained fromthe insurer portals 125, and/or other information about the users thatmay be used by the CAAS 205 to provide recommendations to the userregarding insurance-related issues. The user-related data obtained fromthese various sources may be formatted into a standard schema by one ormore parsing engines of the CAAS 205 and stored in the census data 220.

The raw data layer 205 shown in FIG. 2 includes six API units configuredto implement APIs for accessing data from various sources. Someimplementations of the raw data layer 205 of the CAAS 105 may include adifferent number of APIs for accessing data from the various datasources. The types of data sources accessed and processed by the rawdata layer may depend at least in part on the functionality provided bythe insights layer 290 discussed in greater detail in the examples whichfollow.

The claims and policy API 240 is configured to obtain policy informationand/or insurance claims information from insurers via the insurerportals 125. As discussed in the preceding examples, the CAAS 205 may beconfigured to provide a user interface that guides the user throughlinking their account with the CAAS 205 to their accounts with theirinsurers. The claims and policy API 240 may be configured to retrievepolicy information and/or claims information from each insurer and storethe raw data in the data lake 210. The insurance policy information maybe converted to the standard schema by the policy parsing engine 315 andthe claims information may be converted to a standard schema by theclaims and prescriptions parsing engine 320 shown in FIG. 3.

The policy information for users may be kept up to date in substantiallyreal-time. The claims and policy API 240 may be configured toperiodically check for updates to the policy information for users. Theclaims and policy API 240 may also check for updates to the policyinformation for the user in response to a request from the event-basednotification layer 250 or the insights layer 290. In someimplementations, the claims and policy API 240 may receive updates tothe claims information and/or the policy information from the insurer inresponse to the changes or renewal of a policy or in response to claimsbeing submitted to the insurer for reimbursement.

The HSA provider API 225 may be configured to obtain information fromone or more HSA providers. The HSA provider API 225 can obtaininformation associated with the HSA account of a user, such as but notlimited to the current balance, historical reimbursement information forclaims reimbursed by the HSA account, and/or other informationassociated with the usage of the HSA account. The HSA accountinformation may be used by the CAAS 205 to build a historical model ofthe number and types of claims submitted for reimbursement by the userand to make predictions for recommended future funding of the HSA basedon the historical usage. The HSA account information may also beconsidered by the CAAS 205 when analyzing the insurance coverage of theuser and for recommending coverage that accommodates the needs of theuser.

The prescription API 235 may be configured to obtain prescription priceinformation from a pharmacy benefits manager (PBM). Informationregarding the prescriptions that a user has been prescribed may beobtained directly from the user and/or determined based on the claimsinformation obtained from the insurance providers via the claims andpolicy API 240. The prescription price information may be utilized bythe prescription benefits guidance unit 265.

The insurance plan quote API 230 may be configured to obtain quotes forinsurance coverage from insurers that may be used by the CAAS 205 tocreate a comprehensive bundle of insurance policies for a user based atleast in part on predicted insurance consumption by the user. Theinsurance plan quote API 230 may be configured to submit requests forquotes to insurers for medical insurance, dental insurance, accidentinsurance, hospital indemnity insurance, auto insurance, and/or othertypes of insurance. The insurance portfolio planning unit 275 may usethe quote information to build a comprehensive insurance plan for theuser that is based on the needs of the user. The insurance portfolioplanning unit 275 may determine the needs of the user based on user datathat includes, but is not limited to, the user's medical history, pastinsurance consumption, the user's financial profile (debts, assets,liabilities), family information, psychographics, interests, occupation,salary, physical activity, and/or other information that may be used toinfer the needs of the user.

The eligibility API 245 may be configured to verify enrollment of a userwith an insurer. The API 245 may be used to determine whether the useris covered by a particular policy and whether the user is eligible forcertain types of claims to be reimbursed by the insurer. The eligibilityinformation may be utilized by the CAAS 205 to determine whether aparticular claim or type of claims may be covered by a particularinsurer. The eligibility information may be accessed substantially inreal-time so that recommendations provided by the CAAS 205 are based oncurrent enrollment status of the user.

The third-party data API 280 may be configured to submit queries forthird-party data to the third-party data provider 130. The third-partydata sources may include but are not limited to sources of medicalhistory data, financial profile information, credit history information,marital status information and/or family information, occupation,salary, and/or other information that may be used by the CAAS 105 toprovide various recommendations to the user. The third-party data API280 may be used by the various components of the CAAS 105 to query thevarious data sources for third party data.

The event-based notification layer 250 may utilize conditional logic,machine learning models, and/or artificial intelligence systems foranalyzing the data obtained and/or generated by the raw data layer 205.The event-based notification layer 250 may be configured to analyze thedata from the raw data layer 205 to support the functionality of theservices provided by the insights layer 290. The event-basednotification layer 250 may utilize one or more machine learning modelsto analyze the data maintained by the raw data layer 205. Theevent-based notification layer 250 may implement elements of the bundlerecommendation engine 325 shown in FIGS. 3 and 4.

The insights layer 290 may provide various services to the user based onthe analysis of the data by the event-based notification layer 250. Theinsights layer 290 includes a claims concierge unit 255, a spendingaccount guidance unit 260, a prescription benefits guidance unit 265, aproactive benefits engagement 270, and an insurance portfolio planningunit 275.

The claims concierge unit 255 may be configured to analyze claims dataand to provide recommendations to the user for submitting the claims toan insurer. The claims concierge unit 255 may be configured toautomatically analyze claims data to identify claims that may be paid byan insurer. The claims concierge unit 255 may also providerecommendations in response to a request from a user to analyze one ormore pending insurance claims. Additional features of the claimsconcierge unit 255 are shown in the examples which follow.

The spending account guidance unit 260 may provide guidance to the userfor optimizing the funding of the MSA based on prior health planconsumption and utilizing the MSA funds to reimburse medical claimscosts. The prescription benefits guidance unit 265 may provide guidanceto the user for providing prescription price guidance to the userincluding prices at which prescription medications are being offered atpharmacies located near the user.

The proactive benefits engagement unit 270 may provide recommendationsfor the user for optimizing the usage of their benefits. The proactivebenefits engagement unit 270 may be configured to provide meaningful andactionable notifications to encourage users to engage with the benefitsprovided by their insurance policies. The proactive benefits engagementunit 270 may consider the personal finances of the user when makingrecommendations to the user regarding the usage of the user's benefits.

The insurance portfolio planning unit 275 may provide recommendations tothe user for building insurance bundles that consider the user'sdemographics, risk aversion of the user, and the needs of the user.Additional details of the insurance portfolio planning unit 275 areshown in FIGS. 3, 4, 6A-6G, and 7.

FIG. 3 is a diagram that shows an example implementation of a bundlerecommendation engine 325 that may be implemented by the CAAS 105. Thebundle recommendation engine 325 may be configured to providemachine-learning driven recommendations for comprehensive insuranceplans based on the individual demographics of a user, the riskaversiveness of the user, and the coverage needs of the user. The bundlerecommendation engine 325 may be implemented in part by the raw datalayer 205, the event-based notification layer 250, and the insightslayer 290.

The policy information 305 may include multiple insurance policies, suchas but not limited to medical insurance policies, dental insurancepolicies, accident insurance policies, disability insurance policies,critical illness insurance policies, auto insurance policies, and/orother types of insurance policies. The bundle recommendation engine 325may use this information to obtain information about the currentinsurance coverage of a user and to obtain information for claims thatwere previously made against the user's insurance policies. The pastclaim information may be used by the bundle recommendation engine 325 topredict future claims consumption by the user based upon a demographiccluster into which the user is predicted to fall. The predictedconsumption information may be used to generate a recommendedcomprehensive insurance plan for the user that includes a bundle ofinsurance policies.

The policy information 305 may be obtained by the claims and policy API240 of the raw data layer 205 shown in FIG. 2. Electronic copies of thepolicies may be obtained from the insurers in a Portable Document Format(PDF), or another electronic format supported by each insurer. Insurersmay support different electronic file formats and the layout of thepolicy information provided by each insurer may vary. The policyinformation obtained from the insurers may be stored in the data lake210 of the raw data layer 205. The policy parsing engine 315 may beconfigured to analyze the raw policy data obtained from the insurers andto convert the policy information to a standard schema. The standardizedinformation may be stored in the plan metadata 215. The plan metadatamay include coverage information, policy limits, deductible information,claims information, and/or other information that may be used by theCAAS 105 to determine whether a particular insurer may reimburse thepolicy holder for a particular type of claim or claims. The policyinformation may also be used by the bundle recommendation engine 325 toprovide guidance to the user regarding the user's current insurancecoverage versus coverage provided by a recommended plan.

The policy parsing engine 315 may be configured to use fuzzy matchingtechniques to map policy coverage information extracted from theinsurance policies to standardized coverage information. Insurers mayuse slightly different language to describe the coverage provided. Thepolicy parsing engine 315 may be configured to map the policy coverageinformation with a set of standardized insurance coverage descriptionsmaintained by the CAAS 105. The standardized insurance coveragedescriptions may include descriptions of types of coverage that may beoffered by insurers. The policy parsing engine 315 may be configured toperform a probabilistic data match on the coverage information providedin an insurance policy with the standardized coverages descriptions. Thepolicy parsing engine 315 may be configured to select a standardizeddescription that is associated with the highest probability of being amatch with the policy coverage description. The matching standardizeddescription may be stored in with the policy information in the planmetadata 215 and may be used by the bundle recommendation engine 325 todetermine whether the user has a policy that is likely to cover theclaim.

The policy parsing engine 315 may also be configured to receive planquote information from the insurance quote unit 335. The insurance quoteunit 335 may be configured to obtain insurance policy quotes frominsurers via the insurance plan quote API 230. The insurance plan quoteAPI 230 may be configured to request policy information and quotes forpurchasing the coverage from insurers via the insurer portals 125 inresponse to queries from one or more elements of the CAAS 105. Forexample, the bundle recommendation unit 325 may be configured to requestpolicy information for one or more types of insurance policy that may beincluded in a bundle of policies to be recommended to the user. Thepolicy parsing engine 315 may parse the policy information in a similarmanner as discussed above to standardize the policy information receivedwith the quotes. The raw policy data may be stored in the data lake 210and the standardized policy information may be stored in the policymetadata 215. The information associated with the quotes may be storedand used to generate an insurance plan recommendation for the user. Theinformation associated with a quote may be discarded after a thresholdperiod of time has passed, because the availability of the insuranceplans and the quoted prices may change over time.

Mapping the policy coverage information to standard descriptions mayprovide a significant technical benefit by improving the predictionsthat are provided by the machine learning models used by the bundlerecommendation engine 325. The machine learning models may be trainedusing training data that includes the same standard insurance coveragedescriptions that will be used by the bundle recommendation engine 325to determine whether a particular claim is likely to be covered by auser's insurance policy. Thus, the machine learning models may bepresented with policy coverage data for analysis that utilizesdescriptions consistent with the coverage descriptions included in thetraining data used to train the model.

The claims and prescription information 310 may include substantiallyreal-time information from a medical claims feed and prescription feed.The medical claims information represents insurance claims that the userhas submitted or has had submitted on their behalf for reimbursement.The prescription information represents prescriptions that have beenprescribed to the user and may be submitted for reimbursement to aninsurer. The claims and/or prescription information may be obtained bythe claims and policy API 240 shown in FIG. 2 and the data stored in thedata lake 210. The claims and prescription information obtained fromeach of the insurers may be in different electronic formats and/orlayouts. The claims and prescription information may be processed by theclaims and parsing engine 320 to convert the claims and prescriptioninformation into the standard schema utilized by the CAAS 105. Theclaims and prescription information in the standardized schema may bestored with the plan metadata 215.

The claims and prescription parsing engine 320 may be configured to usefuzzy matching techniques to map the claims and prescription information310 to standardized claims and prescription descriptions before theclaims and prescription information is analyzed by the bundlerecommendation engine 325. Medical providers may use inconsistentlanguage to describe the procedures performed. One medical provider maydescribe the same procedure in a slightly different way than anotherprovider. Such inconsistencies in the description of the proceduresperformed can make determining whether a particular policy covers aparticular claim or prescription. The set of standardized claim andprescription descriptions may provide a consistent set of descriptionsthat may be associated with claims and prescriptions. The claims andprescription parsing engine 320 may be configured to perform aprobabilistic data match on the claims and prescription information 310with the standardized claim and prescription descriptions. The claimsand prescription parsing engine 320 may be configured to select astandardized description that is associated with the highest probabilityof being a match with the description of the procedure performed and/orother information included in the claim and/or prescriptions submittedto the insurer on behalf of a user.

The standardized description matched with a claim may be stored with theclaim information in the plan metadata 215 associated with the claim.The standardized description may also be used by the bundlerecommendation engine 325 to determine whether the user has a policythat is likely to cover the claim. Mapping the claims and prescriptioninformation to standard descriptions provides the technical benefit ofimproving the predictions that are provided by the machine learningmodels used by the bundle recommendation engine 325. The machinelearning models may be trained using training data that includes thesame standard claim and/or prescription descriptions that will be usedby the bundle recommendation engine 325 to recommend an insurance planto the user. Thus, the machine learning models are presented claims andprescription descriptions for analysis that utilizes descriptionsconsistent with the claims and prescription descriptions included in thetraining data used to train the models.

If the probability of the standardized description matching a particularclaim is less than a predetermined threshold, the claims andprescription parsing engine 320 may flag the claim for additionalprocessing. The user may be prompted to provide additional informationthat may be used to help disambiguate the claim and/or to request that adifferent description for the claim be provided. Standardizing thedescriptions of the claims may increase the likelihood that the bundlerecommendation engine 325 may correctly determine prior insuranceconsumption and recommend an appropriate insurance plan to the user.

The third-party data parsing engine 340 may be configured to obtain datafrom the third-party data providers 130 and to parse the third-partydata. The third-party data may include but is not limited to credithistory information, debt information such as mortgage, automobile, orstudent loans, rental history for renters, cost of living informationrelated to a geographical area in which the user is living, and/or otherinformation that may assist the bundle recommendation engine 325 todevelop a comprehensive insurance plan for the user. The third-partydata parsing engine 340 may convert the raw data received from thethird-party data providers 130 to the standard schema used by the CAAS105. The third-party data parsing engine 340 may also be configured toidentify ambiguous data received from the third-party data source 130and to attempt to disambiguate the ambiguous data. The data receivedfrom the third-party sources may not be definitively associated with theuser for whom the data is associated, and the third-party data parsingengine 340 may then analyze the data in an attempt to determine which,if any, of the data obtained is actually associated with the user. Forexample, the third-party data associated queries for a user may includeloan information, but the query returns loan data for three people withsimilar names as the user. The third-party data parsing engine 340 mayneed to disambiguate the information obtained. The third-party dataparsing engine 340 may use fuzzy matching techniques to attempt to matchthe loan data with third-party data and/or data obtained from the userknown to be associated with the user. The third-party data parsingengine 340 may obtain information from the user via the dynamicquestions presented by the insurance questionnaire unit 330 describedbelow. For example, with respect to the loan information, a dynamicquestion or set of questions may be presented to the user to determinewhether any of the loan information is actually associated with theuser. Information that is found to not be associated with the user maybe discarded. The fuzzy matching techniques may produce a correspondencevalue representing how closely the ambiguous data matches with the knowndata associated with the user. The insurance questionnaire unit 330 maybe configured to discard a portion of the ambiguous data that has acorrespondence value that is less than a threshold value as beingunrelated to the user.

The insurance questionnaire unit 330 may be configured to present a setof dynamically generated questions to the user to collect informationfrom the user that may be used by the bundle recommendation engine 325to recommend a bundle of insurance policies that satisfies the needs ofthe user. The dynamically generated questions may be used to collectinformation such as but not limited to the user's medical history, pastinsurance consumption, financial profile information (debts, assets,liabilities), credit history, family information, psychographics,interests, occupation, salary, physical activity, and other informationthat may be used by the bundle recommendation engine 325 to determinethe needs of the user and to present insurance plans that satisfy thoseneeds. The insurance questionnaire unit 330 may also consider thestandardized policy information, claims information, and prescriptioninformation provided by the policy parsing engine 315 and the claims andprescription parsing engine 320 when determining which information torequest from the user. Past medical claim information may be used by thebundle recommendation engine 325 to identify medical conditions thatuser or an insured family member has experienced. Chronic medicalconditions which may require ongoing treatment may be identified andinsurance plans which provide coverage for these conditions may berecommended. Chronic medical conditions such as heart disease, cancer,chronic lung disease, kidney disease, Alzheimer's disease and/ordementia-related chronic conditions, and/or other medical conditionsrequiring long-term medical intervention and/or long-care may beidentified.

The insurance questionnaire unit 330 may obtain third-party data fromthe third-party data parsing engine 340 which may be used to generatefurther questions that may be presented to the user. The questions maybe used to disambiguate the information that was provided by the userand/or obtained from the third-party data sources. The insurancequestionnaire unit 330 may be configured to generate questions to obtaininformation from the user that may be used to learn about the user'srisk exposure. The CAAS 105 can use this information and the user'sdemographic information to provide a recommended bundle of insurancepolicies that cover these risks in a manner that is tailored to thespecific needs of the user. Furthermore, the user's response to aquestion may trigger the insurance questionnaire unit 330 to query foradditional third-party data which may be processed by the third-partydata parsing engine 340. The dynamically generated questions may be usedto further clarify information obtained from the user and/or fromthird-party data sources. For example, if the third-party informationindicates that the user has a mortgage, automobile loan, student loandebt, and/or other types of debt, the insurance questionnaire unit 330may be configured to present follow-up questions to the user todetermine how the user may deal with this debt in certain situations.For example, the insurance questionnaire unit 330 may be configured topresent questions regarding how long the user may be able to continuepaying the debt in the event of a loss of income and how confident theuser is regarding their continued ability to pay the debt. These andother types of questions may be used to infer financial resources of theuser, such as available cash resources, that the user may utilize tocover expenses in the event of an emergency. The bundle recommendationengine 325 may use this information to recommend policies that considerthe financial situation of the user to provide policies that may coverloss of income. For example, if the user or an insured family member isa business owner, then business interruption insurance may berecommended to cover loss of income due to a peril covered by theinsurance policy. The bundle recommendation engine 325 may alsorecommend a supplemental disability insurance policy for loss of incomedue to the insured or a family member becoming unable to work due to amedical condition or injury.

The insurance questionnaire unit 330 may implement one or morepredictive machine learning models that may be used to identifyadditional formation that may be useful for the bundle recommendationengine 325 to make recommendations to the user. The predictive modelsmay analyze the available demographic information provided by the userand/or collected from the one or more third-party data providers 130 toidentify information that may be useful for further understanding thecoverage needs of the user. The insurance questionnaire unit 330 mayanalyze the predictions to determine whether the user-data informationand/or the third-party data included the information predicted to beuseful. The insurance questionnaire unit 330 may identify gaps in theuser-provided and/or third-party information. The insurancequestionnaire unit 330 may attempt to obtain information to address thegaps in the information by querying the third-party data source 130and/or may present dynamically generated questions to the user to obtainthe information that may help fill the gaps in the information alreadyobtained from the user and/or from the third-party data sources. Thepredictive models may be machine learning models trained to recognizerelationships between types of data that may be relevant forrecommending a comprehensive plan of policies to the user. Other type ofprediction models and/or algorithms may also be used to implement theinsurance questionnaire unit 330.

FIGS. 6A-6G, described in detail below, provide an example of a userinterface that may be provided to the CAAS 105. These examplesillustrate a series of questions that may be generated by the insurancequestionnaire unit 330. The insurance questionnaire unit 330 may beconfigured to trigger the presentation of certain questions in responseto the presence of or the absence of certain information in the dataavailable to the insurance questionnaire unit 330.

The bundle recommendation engine 325 analyzes the information receivedfrom the policy parsing engine 315, the claims and prescription parsingengine 320, the insurance questionnaire unit 330, the insurance quoteunit 335, and one or more third-party data providers 130 to generate arecommended bundle of insurance plans for the user. Additionalimplementation details of the bundle recommendation engine 325 are shownin FIG. 4.

FIG. 4 is a diagram showing an example implementation of the bundlerecommendation engine 325 of the CAAS 105. The bundle recommendationengine 325 may include a plan recommendation unit 405, a consumptioncluster machine learning model 410, a dynamic scenario unit 420, a planprocurement unit 425, and a model update unit 430.

The bundle recommendation engine 325 may analyze user data from thevarious sources discussed above in order to recommend a comprehensiveinsurance plan that may include a combination of insurance policies,health savings accounts, supplemental insurance policies, and/or otherinsurance products that may be included as part of a comprehensiveinsurance plan. A recommendation may be generated on demand in responseto a request from the user or automatically by the CAAS 105 in responseto various events that indicate that the risk exposure of the user.Changes in the user's demographic information may trigger the CAAS 105to generate a new recommended bundle of insurance to the user. Thedemographic information may be updated by the user and/or obtained fromone or more third party data sources. For example, the planrecommendation engine may be configured to respond to a change inmarital status, the birth or adoption of a child, the purchase of a newhome, a job change, and/or other events for which a new insurance planmay be desirable to ensure that the user has adequate insurance coverageto reflect their changing needs. The bundle recommendation engine 325may also be configured to guide the user through obtaining therecommended coverage from one or more insurers in response to the userindicating that they would like to obtain the coverage recommended bythe bundle recommendation engine 325.

The plan recommendation unit 405 may be configured to obtain claims,policy, and user demographic information 440 to be analyzed to suggest acomprehensive insurance plan for the user. The claims, policy, anddemographic information 440 include the standardized policy coverageinformation output by the policy parsing engine 315. The claims andpolicy information 440 may also include the claims and prescriptioninformation into the standard schema output by the claims and parsingengine 320. The claims, policy, and demographic information 440 also mayinclude user demographic information, which may have been obtained bythe insurance questionnaire unit 330.

The plan recommendation unit 405 may first analyze the claims, policy,and demographic information 440 to generate a claim cluster predication.The plan recommendation unit 405 may provide the information associatedwith the user to the consumption cluster prediction model 410. Theconsumption cluster prediction model 410 may be trained with demographicinformation, claims information, medical history information, financialprofile information, credit history information, family information,psychographics, interests, occupation, salary, physical activity, andother information that may be used to group users into clusters ofpeople having similar characteristics. The consumption clusterprediction model 410 may be configured to output a prediction that theuser falls within a particular cluster associated with an anticipatedmedical spending over a predetermined period of time. The predeterminedperiod of time may be a year in many implementations because manyinsurance policies renew annually. However, the period of timeassociated with the prediction may be different in some implementations.

The predicted medical spending for a cluster may include an amount spentand types of claims typically filed. The predicted medical spending maythen be used to create a comprehensive insurance plan for the user thatincludes a recommended bundle of insurance policies based on thepredicted medical spending. The comprehensive plan may include a bundleof insurance policies, health savings accounts, supplemental insurancepolicies, and/or other insurance products that may be included as partof a comprehensive insurance plan. The prediction accounts for numerousfactors that may influence the risk exposure of the user and provides arecommended insurance bundle that may best match the needs of the user.The model considers a complex set of variables when making arecommendation that would be impractical, if not impossible, for a userto consider without such assistance. Thus, a technical benefit of thisapproach is that the machine learning models may recognize patterns inthe insurance consumption and demographic information of the user torecommend a comprehensive insurance plan that may not otherwise beevident to a user.

The prediction model 410 may be trained initially with hand-labeledtraining data, but the model may be refined based on feedback on thepredictions from the model update unit 430 discussed below. Theconsumption cluster prediction model 410 may be implemented usingvarious types of machine learning models for which the training of themodel may be refined.

The plan recommendation unit 405 may be configured to analyze thepredicted medical spending for the user and to recommend a bundle ofinsurance policies, health savings accounts, supplemental insurancepolicies, and/or other insurance products that may cover the predictedmedical spending. For example, if the predicted medical spendingincludes hospitalization resulting from an accident, the recommendedbundle of insurance policies may include at least one insurance policythat covers hospitalization such as an accident insurance policy. Thecomprehensive plan may then be customized by the plan recommendationunit 405 to meet the needs of the user.

The plan recommendation unit 405 may customize the recommendation bundleof policies based on the user demographics data. The plan recommendationunit 405 may customize the recommend bundle of insurance policies basedon the user's medical history, past insurance consumption, financialprofile information (debts, assets, liabilities), credit history, familyinformation, psychographics, interests, occupation, salary, physicalactivity, and other information to customize the recommended planaccording to the needs of the user. The plan recommendation unit 405 mayuse this information to identify potential gaps between the coverageprovided by the recommended bundle of policies and the needs of theuser.

The following examples show how the plan recommendation unit 405 mayidentify such gaps in coverage and customize the recommend bundle ofinsurance policies to close these gaps. The plan recommendation unit 405may take into account the marital status and/or the number of dependentsof the user when customizing the plan. For example, the amount of lifeinsurance recommended for the user may be increased based on if the useris married and for a user having a greater number of dependents.Furthermore, the plan recommendation unit 405 may recommend a HealthMaintenance Organization (HMO) rather than a Preferred ProviderOrganization (PPO) for a user having a greater number of dependents toreduce out of pocket spending associated with the PPO. The planrecommendation unit 405 may also take into account previous medicalspending by the user when customizing the recommended bundle of policiesto the user. For example, if the user has a history of medical visits toan otolaryngologist for ear-related problems over the past severalyears, the plan recommendation unit 405 may select a comprehensive planthat covers all or most of the costs associated with such visits. Theplan recommendation unit 405 may also consider the occupation of theuser when making a recommendation because the risk of certain types ofinjuries and/or death may be greater for certain occupations.Furthermore, the income of the user and/or the user's spouse may beconsidered when making recommendations to ensure that the costs of therecommended policies do not exceed a threshold portion of the availableincome. The plan recommendation unit 405 may reduce the cost of therecommended bundle of policies by eliminating some types of coveragethat may otherwise be recommended, by selecting less expensive plans,and/or reducing the policy benefits of one or more of the policies. Inanother example, the bundle associated with the prediction may recommenda health savings account (HSA), but the user may be provided with anemployer-paid low deductible or no-deductible plan and the inclusion ofthe HSA may be unnecessary. In yet another example, the planrecommendation unit 405 may recommend a supplemental life insurancepolicy that was not included in the original recommended bundle ofpolicies where the coverage of a life insurance policy provided by theuser's employer is less than would be required to pay off the user'smortgage and to replace the user's income for a specified period oftime. The supplemental life insurance policy may be recommended to coverthe gap between the employer-provided life insurance policy and thedesired amount of coverage. The customization provided by the planrecommendation unit 325 is not limited to these examples. The planrecommendation unit 325 may take into account other factors in additionto or instead of those discussed above when customizing therecommendation for a user.

The dynamic scenario unit 420 is configured to generate an insurancerecommendation report based on the bundle of policies recommended by theplan recommendation unit 405. The CAAS 105 may cause the insurancerecommendation report to be displayed on the client device 115 of theuser. The insurance recommendation report provides detailed informationon the comprehensive insurance plan that is being recommended to theuser.

An example insurance recommendation report is shown in FIG. 6G and FIG.10. The insurance recommendation report provides a list of the insurancepolicies that the plan recommendation unit 405 recommends. The insurancerecommendation report may include an insurance provider from which thepolicy may be obtained, the cost of the policy, policy coverageinformation, and/or other information associated with the policy. Theinsurance recommendation report may also include a dynamic scenarioassociated with each policy that was recommended. The dynamic scenarioprovides a narrative that explains why the policy has been recommendedto the user. The costs and/or savings associated with each policy may bedescribed as well as other information that indicates why a particularpolicy has been recommended to the user. For example, a health spendingaccount may be recommended to the user in combination with a highdeductible insurance policy. The user may be predicted to file a minimalnumber of health claims during the year. Therefore, a higher deductiblemedical plan that is less expensive, but protects the user fromcatastrophic losses may be recommended. The user may also fund the HSAwith tax-deductible money that may be used to offset medical costsduring the year. These example scenarios show the type of informationthat may be provided in the plan recommendation report so that the userunderstands why the recommendation was made. The contents of the reportare not limited to these specific examples.

The plan procurement unit 425 may be configured to enable the user topurchase policies included in the bundle of policies recommended to theuser. Some of the policies may have already been issued to the user andwill not need to be purchased by the user. For example, the user mayhave an existing employer-provided medical insurance policy which hasalready been provided to the user by the user's employer. Furthermore,some of the policies may not be available for purchase online. The planprocurement unit 425 may be configured to present instructions on a userinterface of the CAAS 105. The plan purchase assistance 425 may alsoprovide the ability for the user to fill out the form electronically andprint the form to be sent to the insurer via postal mail service. Theplan procurement unit 425 may be configured to assist the user withobtaining forms to modify existing insurance policies if necessary. Forexample, if the recommendation includes changing enrollment from aPreferred Provider Organization (PPO) to a Health MaintenanceOrganization (HMO) for employer-provided insurance, the plan procurementunit 425 may be configured to obtain a copy of the forms necessary tomake the change. The plan procurement unit 425 may also advise the userof any restrictions on making such a change, such as a change in familystatus or the change must be made during a specified open enrollmentperiod. The plan procurement unit 425 may receive a summary of theactions taken to obtain the recommended policies.

The model update unit 430 may be configured to provide feedback to theconsumption cluster prediction model 410 to refine the training of themodel. The model update unit 430 may receive feedback directly from theuser and/or from the plan recommendation unit 405. Feedback from theuser may be obtained from the plan recommendation unit 405 in responseto the user opting to not select one or more policies associated with arecommendation or completely rejecting the proposed bundle of policies.The feedback may be used to further refine the clustering predicted bythe consumption cluster prediction model 410.

FIGS. 6A-6G are diagrams showing an example user interfaces of the CAAS105 for collecting information for generating an insurance bundlerecommendation and for presenting the insurance bundle recommendation.The user interfaces shown in FIGS. 6A-6G may be rendered by a browserapplication or a native application installed on a client device, suchas the client devices 115 a-115 c shown in FIG. 1. The CAAS 105 may beconfigured to provide content renderable by a web browser installed onthe client device. The CAAS 105 may also be configured to providecontent to a native application installed on the client device which isconfigured to render the content received from the CAAS 105, to allow auser to interact with the content, and to receive requests for dataand/or to perform various operations on the data maintained by the CAAS105.

FIG. 6A is a diagram of an insurance dashboard user interface 605. Theinsurance dashboard user interface 605 may be implemented by the claimsconcierge unit 255 of the insights layer 290 of the CAAS 105. Theinsurance dashboard user interface 605 includes a notification pane 625,a claims details pane 630, and a claims analytics pane 635. The exampleimplementation of the insurance dashboard user interface 605 shown inFIG. 6A shows one possible implementation of such an interface. Otherimplementations may present additional information to the user insteadof or in addition to the information provided in this example.

The claims details pane 630 provides details of claims that wererecently submitted to one or more insurers on behalf of the insured. Theclaims details may indicate who was covered, such as a member of thefamily of the insured user, when a particular service was performed,what service was performed, copay information, insurer information forthe insurer to which the claim was filed, and/or other informationrelated to the claims made to the insurer's policy. The claimsinformation may be obtained from the plan metadata 215, the data lake210, and/or another persistent data storage area of the raw data layer205 of the CAAS 105. The claims details pane 630 may be configured toenable the user to obtain additional information for a claim by clickingon a link or other user interface component that may be clicked orotherwise activated by the user.

The claims analytics pane 635 may present information reporting variousaspects of the user's insurance plan usage. The analytics may includeinformation for multiple policy types, copays, and other out-of-pocketspending by the user, and/or other information related to the user'susage of their insurance policies. The claims analytics pane 635 may beconfigured to enable the user to obtain additional information ofvarious elements of the analytics data by clicking on a link or otheruser interface component that may be clicked or otherwise activated bythe user.

The notification pane 625 may be used to present informational messagesto a user regarding their account information, policy information,claims information, or a combination thereof. The notification pane 625may also include a link, button, or other means for activatingfunctionality associated with the content presented in the notificationpane 625. In the implementation shown in FIG. 6A, the notification pane625 shows a message that indicates that the user may be able to submit aclaim to her insurance company.

FIG. 6B shows a user interface 610 that may be displayed in response tothe user clicking on or otherwise activating the link, button, or othermeans for activating functionality associated with the content presentedin the notification pane 625. The user interface 605 may be created bythe bundle recommendation engine 325. The user interface 610 shows thestart of an example insurance planning questionnaire. The user interface610 shows a first dynamically generated question of the questionnaire.The questions may be generated to collect information from the user thatthe bundle recommendation engine 325 may analyze to provide an insuranceplan recommendation. The user may click the “Next” button to indicate tothe CAAS 105 that the user would like to advance to the next question inthe questionnaire shown in FIG. 6C.

FIG. 6C shows a next question in the questionnaire on the user interface610. The questions shown in FIG. 6C has been selected based on theuser's response to the question shown in FIG. 6B. In FIG. 6B, the userindicated that they participate in sports, and in FIG. 6C asks the userwhether the user participants in any of a list of sports that may beconsidered “extreme” sports. The questionnaire included these questionsbecause the participation in such sports may impact the insurancecoverage that the bundle recommendation engine 325 may recommend to theuser. FIG. 6D shows an additional question related to past insuranceconsumption, and FIGS. 6E and 6F show additional questions related tothe changes in the marital status of the insured. The user may advancethrough the questions by clicking the “Next” button or return to aprevious question by clicking the “Back” button.

FIG. 6G shows an example user interface 640 that provides an exampleinsurance recommendation report. FIG. 10 shows the full report that isshown in part on the user interface shown in FIG. 6G. The insurancebundle recommendation may be generated by the bundle recommendationengine 325. The recommendation pane 655 includes a list of insurancepolicies recommended to the user. Each entry includes dynamic scenarioinformation that explains why the recommendations were made to the user.The dynamic scenario information is based on information collected fromthe user, the information obtained from third-party information sources,the claims and/or prescription information indicative of previousconsumption of insurance, and/or other data analyzed by the bundlerecommendation engine 325 to create the plan recommendation. The dynamicscenarios tie the explanations provided directly to this data. Thedynamic scenarios may include costs and/or savings associated with eachof the policy recommendations. The plan may include multiple types ofinsurance policies that provide a comprehensive insurance plan thatprovide the coverage for the user.

FIG. 7 illustrates a flow chart of an example process 700 forrecommending a bundle of insurance policy to a user. The process 700 maybe implemented by the CAAS 105 discussed in the preceding examples.

The process 700 may include an operation 710 of obtaining an electroniccopy of first demographic information associated with a user. The firstdemographic information may include demographic information provided bythe user, demographic information obtained from one or more third-partydata sources, or both. As discussed in the preceding examples, the userdemographic information may be collected from the user via the insurancequestionnaire unit 330, from the third-party data providers 130, orboth. The demographic information may include various information aboutthe user, such as but not limited to, age, sex, race, and/or otherinformation that may be used to segment the population into clusters ofpeople having similar characteristics. The demographic information mayinclude other factors associated with the user, such as but not limitedto, past insurance claims information, medical history information,financial profile information, credit history information, familyinformation, psychographics, interests, occupation, salary, physicalactivity, and other information that may be used to group users intoclusters of people having similar characteristics.

The process 700 may include an operation 720 of dynamically generating aplurality of questions to obtain second demographic information for theuser by identifying additional demographic information relevant to theuser for determining insurance coverage needs of the user using a firstmachine learning model trained to receive as an input the firstdemographic information for the user and to predict and outputadditional information demographic information relevant for determininginsurance coverage needs of the user based on the first demographicinformation. The insurance questionnaire unit 330 may analyze the firstdemographic information received from the user, the third-party dataproviders 130, or both to identify additional information that may berelevant for recommending a comprehensive insurance plan to the user.The insurance questionnaire unit 330 may identify gaps in firstdemographic information and generate questions to present to the user tofill in these gaps. The process of collecting and analyzing thedemographic data obtained from the user, from the third-party datasources 130, or both and analyzing the data may be an iterative processthat may be repeated multiple times as additional information about theuser is obtained.

The process 700 may include an operation 730 of adding the seconddemographic information to the first demographic information to createcumulative demographic information for the user. The additionaldemographic information obtained for the user may be stored by the CAAS105 and used by bundle recommendation engine 325 and/or other elementsof the CAAS 105 to provide various services to the user.

The process 700 may include an operation 740 of providing the cumulativedemographic information as an input to a second machine learning modeland an operation 750 of analyzing the cumulative demographic informationwith the second machine learning model, wherein the first machinelearning model is trained to segment people into clusters of peoplehaving similar demographics, wherein the first machine learning model isconfigured to analyze the cumulative demographic information associatedwith the user to predict a cluster associated with the user and outputpredicted medical spending information associated with the predictedcluster. The second machine learning model may be implemented by thecluster consumption training model 410 and may be trained to segmentpeople into clusters of people having similar demographics. The secondmachine learning model may be configured to analyze the cumulativedemographic data associated with the user to predict a clusterassociated with the first user and output predicted medical spendinginformation associated with the predicted cluster.

The process 700 may include an operation 760 of providing the predictedmedical spending information output by the first machine learning modelto a recommendation engine to generate a comprehensive insurance planfor the user comprising a plurality of insurance policies based on thepredicted medical spending information. The bundle recommendation engine325 may be configured to generate a comprehensive insurance plan for theuser based on the predicted medical consumption obtained from themachine learning model as discussed in the preceding examples.

The process 700 may include an operation 770 of customizing thecomprehensive insurance plan based on the demographic informationassociated with the user to generate a customized bundle of insurancepolicies. The bundle recommendation engine 325 may customize thecomprehensive insurance plan according to the demographics of the useras discussed in the preceding examples.

The process 700 may include an operation 780 of generating an insurancerecommendation report that presents the customized bundle of insurancepolicies to the user. The dynamic scenario unit 420 may present therecommended bundle of insurance policies in addition to dynamic scenarioinformation that provides explanations tied to the user's informationwhy each recommendation was made. An example of such a report is shownin FIG. 6G.

The process 700 may include an operation 790 of causing a user interfaceof a display of a computing device associated with the user to presentthe insurance recommendation report. The bundle recommendation engine325 may cause the user's client device 115 to display the insurancerecommendation report. As discussed in the preceding examples, the usermay interact with the CAAS 105 via a native application associated withthe CAAS 105 on the client device 115 or via a web browser on the clientdevice 115. The recommended bundle of polices may be presented to theuser. In some implementations, the CAAS 105 may be configured to providea means for the user to obtain the recommended policies from theinsurers

The detailed examples of systems, devices, and techniques described inconnection with FIGS. 1-7 are presented herein for illustration of thedisclosure and its benefits. Such examples of use should not beconstrued to be limitations on the logical process embodiments of thedisclosure, nor should variations of user interface methods from thosedescribed herein be considered outside the scope of the presentdisclosure. It is understood that references to displaying or presentingan item (such as, but not limited to, presenting an image on a displaydevice, presenting audio via one or more loudspeakers, and/or vibratinga device) include issuing instructions, commands, and/or signalscausing, or reasonably expected to cause, a device or system to displayor present the item. In some embodiments, various features described inFIGS. 1-7 are implemented in respective modules, which may also bereferred to as, and/or include, logic, components, units, and/ormechanisms. Modules may constitute either software modules (for example,code embodied on a machine-readable medium) or hardware modules.

In some examples, a hardware module may be implemented mechanically,electronically, or with any suitable combination thereof. For example, ahardware module may include dedicated circuitry or logic that isconfigured to perform certain operations. For example, a hardware modulemay include a special-purpose processor, such as a field-programmablegate array (FPGA) or an Application Specific Integrated Circuit (ASIC).A hardware module may also include programmable logic or circuitry thatis temporarily configured by software to perform certain operations andmay include a portion of machine-readable medium data and/orinstructions for such configuration. For example, a hardware module mayinclude software encompassed within a programmable processor configuredto execute a set of software instructions. It will be appreciated thatthe decision to implement a hardware module mechanically, in dedicatedand permanently configured circuitry, or in temporarily configuredcircuitry (for example, configured by software) may be driven by cost,time, support, and engineering considerations.

Accordingly, the phrase “hardware module” should be understood toencompass a tangible entity capable of performing certain operations andmay be configured or arranged in a certain physical manner, be that anentity that is physically constructed, permanently configured (forexample, hardwired), and/or temporarily configured (for example,programmed) to operate in a certain manner or to perform certainoperations described herein. As used herein, “hardware-implementedmodule” refers to a hardware module. Considering examples in whichhardware modules are temporarily configured (for example, programmed),each of the hardware modules need not be configured or instantiated atany one instance in time. For example, where a hardware module includesa programmable processor configured by software to become aspecial-purpose processor, the programmable processor may be configuredas respectively different special-purpose processors (for example,including different hardware modules) at different times. Software mayaccordingly configure a processor or processors, for example, toconstitute a particular hardware module at one instance of time and toconstitute a different hardware module at a different instance of time.A hardware module implemented using one or more processors may bereferred to as being “processor implemented” or “computer implemented.”

Hardware modules can provide information to, and receive informationfrom, other hardware modules. Accordingly, the described hardwaremodules may be regarded as being communicatively coupled. Where multiplehardware modules exist contemporaneously, communications may be achievedthrough signal transmission (for example, over appropriate circuits andbuses) between or among two or more of the hardware modules. Inembodiments in which multiple hardware modules are configured orinstantiated at different times, communications between such hardwaremodules may be achieved, for example, through the storage and retrievalof information in memory devices to which the multiple hardware moduleshave access. For example, one hardware module may perform an operationand store the output in a memory device, and another hardware module maythen access the memory device to retrieve and process the stored output.

In some examples, at least some of the operations of a method may beperformed by one or more processors or processor-implemented modules.Moreover, the one or more processors may also operate to supportperformance of the relevant operations in a “cloud computing”environment or as a “software as a service” (SaaS). For example, atleast some of the operations may be performed by, and/or among, multiplecomputers (as examples of machines including processors), with theseoperations being accessible via a network (for example, the Internet)and/or via one or more software interfaces (for example, an applicationprogram interface (API)). The performance of certain of the operationsmay be distributed among the processors, not only residing within asingle machine, but deployed across several machines. Processors orprocessor-implemented modules may be in a single geographic location(for example, within a home or office environment, or a server farm), ormay be distributed across multiple geographic locations.

FIG. 8 is a block diagram 800 illustrating an example softwarearchitecture 802, various portions of which may be used in conjunctionwith various hardware architectures herein described, which mayimplement any of the above-described features. FIG. 8 is a non-limitingexample of a software architecture, and it will be appreciated that manyother architectures may be implemented to facilitate the functionalitydescribed herein. The software architecture 802 may execute on hardwaresuch as a machine 900 of FIG. 9 that includes, among other things,processors 910, memory 930, and input/output (I/O) components 950. Arepresentative hardware layer 804 is illustrated and can represent, forexample, the machine 900 of FIG. 9. The representative hardware layer804 includes a processing unit 806 and associated executableinstructions 808. The executable instructions 808 represent executableinstructions of the software architecture 802, including implementationof the methods, modules and so forth described herein. The hardwarelayer 804 also includes a memory/storage 810, which also includes theexecutable instructions 808 and accompanying data. The hardware layer804 may also include other hardware modules 812. Instructions 808 heldby processing unit 806 may be portions of instructions 808 held by thememory/storage 810.

The example software architecture 802 may be conceptualized as layers,each providing various functionality. For example, the softwarearchitecture 802 may include layers and components such as an operatingsystem (OS) 814, libraries 816, frameworks 818, applications 820, and apresentation layer 844. Operationally, the applications 820 and/or othercomponents within the layers may invoke API calls 824 to other layersand receive corresponding results 826. The layers illustrated arerepresentative in nature and other software architectures may includeadditional or different layers. For example, some mobile or specialpurpose operating systems may not provide the frameworks/middleware 818.

The OS 814 may manage hardware resources and provide common services.The OS 814 may include, for example, a kernel 828, services 830, anddrivers 832. The kernel 828 may act as an abstraction layer between thehardware layer 804 and other software layers. For example, the kernel828 may be responsible for memory management, processor management (forexample, scheduling), component management, networking, securitysettings, and so on. The services 830 may provide other common servicesfor the other software layers. The drivers 832 may be responsible forcontrolling or interfacing with the underlying hardware layer 804. Forinstance, the drivers 832 may include display drivers, camera drivers,memory/storage drivers, peripheral device drivers (for example, viaUniversal Serial Bus (USB)), network and/or wireless communicationdrivers, audio drivers, and so forth depending on the hardware and/orsoftware configuration.

The libraries 816 may provide a common infrastructure that may be usedby the applications 820 and/or other components and/or layers. Thelibraries 816 typically provide functionality for use by other softwaremodules to perform tasks, rather than rather than interacting directlywith the OS 814. The libraries 816 may include system libraries 834 (forexample, C standard library) that may provide functions such as memoryallocation, string manipulation, file operations. In addition, thelibraries 816 may include API libraries 836 such as media libraries (forexample, supporting presentation and manipulation of image, sound,and/or video data formats), graphics libraries (for example, an OpenGLlibrary for rendering 2D and 3D graphics on a display), databaselibraries (for example, SQLite or other relational database functions),and web libraries (for example, WebKit that may provide web browsingfunctionality). The libraries 816 may also include a wide variety ofother libraries 838 to provide many functions for applications 820 andother software modules.

The frameworks 818 (also sometimes referred to as middleware) provide ahigher-level common infrastructure that may be used by the applications820 and/or other software modules. For example, the frameworks 818 mayprovide various graphic user interface (GUI) functions, high-levelresource management, or high-level location services. The frameworks 818may provide a broad spectrum of other APIs for applications 820 and/orother software modules.

The applications 820 include built-in applications 840 and/orthird-party applications 842. Examples of built-in applications 840 mayinclude, but are not limited to, a contacts application, a browserapplication, a location application, a media application, a messagingapplication, and/or a game application. Third-party applications 842 mayinclude any applications developed by an entity other than the vendor ofthe particular platform. The applications 820 may use functionsavailable via OS 814, libraries 816, frameworks 818, and presentationlayer 844 to create user interfaces to interact with users.

Some software architectures use virtual machines, as illustrated by avirtual machine 848. The virtual machine 848 provides an executionenvironment where applications/modules can execute as if they wereexecuting on a hardware machine (such as the machine 900 of FIG. 9, forexample). The virtual machine 848 may be hosted by a host OS (forexample, OS 814) or hypervisor, and may have a virtual machine monitor846 which manages operation of the virtual machine 848 andinteroperation with the host operating system. A software architecture,which may be different from software architecture 802 outside of thevirtual machine, executes within the virtual machine 848 such as an OS850, libraries 852, frameworks 854, applications 856, and/or apresentation layer 858.

FIG. 9 is a block diagram illustrating components of an example machine900 configured to read instructions from a machine-readable medium (forexample, a machine-readable storage medium) and perform any of thefeatures described herein. The example machine 900 is in a form of acomputer system, within which instructions 916 (for example, in the formof software components) for causing the machine 900 to perform any ofthe features described herein may be executed. As such, the instructions916 may be used to implement modules or components described herein. Theinstructions 916 cause unprogrammed and/or unconfigured machine 900 tooperate as a particular machine configured to carry out the describedfeatures. The machine 900 may be configured to operate as a standalonedevice or may be coupled (for example, networked) to other machines. Ina networked deployment, the machine 900 may operate in the capacity of aserver machine or a client machine in a server-client networkenvironment, or as a node in a peer-to-peer or distributed networkenvironment. Machine 900 may be embodied as, for example, a servercomputer, a client computer, a personal computer (PC), a tabletcomputer, a laptop computer, a netbook, a set-top box (STB), a gamingand/or entertainment system, a smart phone, a mobile device, a wearabledevice (for example, a smart watch), and an Internet of Things (IoT)device. Further, although only a single machine 900 is illustrated, theterm “machine” includes a collection of machines that individually orjointly execute the instructions 916.

The machine 900 may include processors 910, memory 930, and I/Ocomponents 950, which may be communicatively coupled via, for example, abus 902. The bus 902 may include multiple buses coupling variouselements of machine 900 via various bus technologies and protocols. Inan example, the processors 910 (including, for example, a centralprocessing unit (CPU), a graphics processing unit (GPU), a digitalsignal processor (DSP), an ASIC, or a suitable combination thereof) mayinclude one or more processors 912 a to 912 n that may execute theinstructions 916 and process data. In some examples, one or moreprocessors 910 may execute instructions provided or identified by one ormore other processors 910. The term “processor” includes a multi-coreprocessor including cores that may execute instructionscontemporaneously. Although FIG. 9 shows multiple processors, themachine 900 may include a single processor with a single core, a singleprocessor with multiple cores (for example, a multi-core processor),multiple processors each with a single core, multiple processors eachwith multiple cores, or any combination thereof. In some examples, themachine 900 may include multiple processors distributed among multiplemachines.

The memory/storage 930 may include a main memory 932, a static memory934, or other memory, and a storage unit 936, both accessible to theprocessors 910 such as via the bus 902. The storage unit 936 and memory932, 934 store instructions 916 embodying any one or more of thefunctions described herein. The memory/storage 930 may also storetemporary, intermediate, and/or long-term data for processors 910. Theinstructions 916 may also reside, completely or partially, within thememory 932, 934, within the storage unit 936, within at least one of theprocessors 910 (for example, within a command buffer or cache memory),within memory at least one of I/O components 950, or any suitablecombination thereof, during execution thereof. Accordingly, the memory932, 934, the storage unit 936, memory in processors 910, and memory inI/O components 950 are examples of machine-readable media.

As used herein, “machine-readable medium” refers to a device able totemporarily or permanently store instructions and data that causemachine 900 to operate in a specific fashion, and may include, but isnot limited to, random-access memory (RAM), read-only memory (ROM),buffer memory, flash memory, optical storage media, magnetic storagemedia and devices, cache memory, network-accessible or cloud storage,other types of storage and/or any suitable combination thereof. The term“machine-readable medium” applies to a single medium, or combination ofmultiple media, used to store instructions (for example, instructions916) for execution by a machine 900 such that the instructions, whenexecuted by one or more processors 910 of the machine 900, cause themachine 900 to perform and one or more of the features described herein.Accordingly, a “machine-readable medium” may refer to a single storagedevice, as well as “cloud-based” storage systems or storage networksthat include multiple storage apparatus or devices. The term“machine-readable medium” excludes signals per se.

The I/O components 950 may include a wide variety of hardware componentsadapted to receive input, provide output, produce output, transmitinformation, exchange information, capture measurements, and so on. Thespecific I/O components 950 included in a particular machine will dependon the type and/or function of the machine. For example, mobile devicessuch as mobile phones may include a touch input device, whereas aheadless server or IoT device may not include such a touch input device.The particular examples of I/O components illustrated in FIG. 9 are inno way limiting, and other types of components may be included inmachine 900. The grouping of I/O components 950 are merely forsimplifying this discussion, and the grouping is in no way limiting. Invarious examples, the I/O components 950 may include user outputcomponents 952 and user input components 954. User output components 952may include, for example, display components for displaying information(for example, a liquid crystal display (LCD) or a projector), acousticcomponents (for example, speakers), haptic components (for example, avibratory motor or force-feedback device), and/or other signalgenerators. User input components 954 may include, for example,alphanumeric input components (for example, a keyboard or a touchscreen), pointing components (for example, a mouse device, a touchpad,or another pointing instrument), and/or tactile input components (forexample, a physical button or a touch screen that provides locationand/or force of touches or touch gestures) configured for receivingvarious user inputs, such as user commands and/or selections.

In some examples, the I/O components 950 may include biometriccomponents 956, motion components 958, environmental components 960,and/or position components 962, among a wide array of other physicalsensor components. The biometric components 956 may include, forexample, components to detect body expressions (for example, facialexpressions, vocal expressions, hand or body gestures, or eye tracking),measure biosignals (for example, heart rate or brain waves), andidentify a person (for example, via voice-, retina-, fingerprint-,and/or facial-based identification). The motion components 958 mayinclude, for example, acceleration sensors (for example, anaccelerometer) and rotation sensors (for example, a gyroscope). Theenvironmental components 960 may include, for example, illuminationsensors, temperature sensors, humidity sensors, pressure sensors (forexample, a barometer), acoustic sensors (for example, a microphone usedto detect ambient noise), proximity sensors (for example, infraredsensing of nearby objects), and/or other components that may provideindications, measurements, or signals corresponding to a surroundingphysical environment. The position components 962 may include, forexample, location sensors (for example, a Global Position System (GPS)receiver), altitude sensors (for example, an air pressure sensor fromwhich altitude may be derived), and/or orientation sensors (for example,magnetometers).

The I/O components 950 may include communication components 964,implementing a wide variety of technologies operable to couple themachine 900 to network(s) 970 and/or device(s) 980 via respectivecommunicative couplings 972 and 982. The communication components 964may include one or more network interface components or other suitabledevices to interface with the network(s) 970. The communicationcomponents 964 may include, for example, components adapted to providewired communication, wireless communication, cellular communication,Near Field Communication (NFC), Bluetooth communication, Wi-Fi, and/orcommunication via other modalities. The device(s) 980 may include othermachines or various peripheral devices (for example, coupled via USB).

In some examples, the communication components 964 may detectidentifiers or include components adapted to detect identifiers. Forexample, the communication components 964 may include Radio FrequencyIdentification (RFID) tag readers, NFC detectors, optical sensors (forexample, one- or multi-dimensional bar codes, or other optical codes),and/or acoustic detectors (for example, microphones to identify taggedaudio signals). In some examples, location information may be determinedbased on information from the communication components 962, such as, butnot limited to, geo-location via Internet Protocol (IP) address,location via Wi-Fi, cellular, NFC, Bluetooth, or other wireless stationidentification and/or signal triangulation.

While various embodiments have been described, the description isintended to be exemplary, rather than limiting, and it is understoodthat many more embodiments and implementations are possible that arewithin the scope of the embodiments. Although many possible combinationsof features are shown in the accompanying figures and discussed in thisdetailed description, many other combinations of the disclosed featuresare possible. Any feature of any embodiment may be used in combinationwith or substituted for any other feature or element in any otherembodiment unless specifically restricted. Therefore, it will beunderstood that any of the features shown and/or discussed in thepresent disclosure may be implemented together in any suitablecombination. Accordingly, the embodiments are not to be restrictedexcept in light of the attached claims and their equivalents. Also,various modifications and changes may be made within the scope of theattached claims.

While the foregoing has described what are considered to be the bestmode and/or other examples, it is understood that various modificationsmay be made therein and that the subject matter disclosed herein may beimplemented in various forms and examples, and that the teachings may beapplied in numerous applications, only some of which have been describedherein. It is intended by the following claims to claim any and allapplications, modifications and variations that fall within the truescope of the present teachings.

Unless otherwise stated, all measurements, values, ratings, positions,magnitudes, sizes, and other specifications that are set forth in thisspecification, including in the claims that follow, are approximate, notexact. They are intended to have a reasonable range that is consistentwith the functions to which they relate and with what is customary inthe art to which they pertain.

The scope of protection is limited solely by the claims that now follow.That scope is intended and should be interpreted to be as broad as isconsistent with the ordinary meaning of the language that is used in theclaims when interpreted in light of this specification and theprosecution history that follows and to encompass all structural andfunctional equivalents. Notwithstanding, none of the claims are intendedto embrace subject matter that fails to satisfy the requirement ofSections 101, 102, or 103 of the Patent Act, nor should they beinterpreted in such a way. Any unintended embracement of such subjectmatter is hereby disclaimed.

Except as stated immediately above, nothing that has been stated orillustrated is intended or should be interpreted to cause a dedicationof any component, step, feature, object, benefit, advantage, orequivalent to the public, regardless of whether it is or is not recitedin the claims.

It will be understood that the terms and expressions used herein havethe ordinary meaning as is accorded to such terms and expressions withrespect to their corresponding respective areas of inquiry and studyexcept where specific meanings have otherwise been set forth herein.Relational terms such as first and second and the like may be usedsolely to distinguish one entity or action from another withoutnecessarily requiring or implying any actual such relationship or orderbetween such entities or actions. The terms “comprises,” “comprising,”or any other variation thereof, are intended to cover a non-exclusiveinclusion, such that a process, method, article, or apparatus thatcomprises a list of elements does not include only those elements butmay include other elements not expressly listed or inherent to suchprocess, method, article, or apparatus. An element proceeded by “a” or“an” does not, without further constraints, preclude the existence ofadditional identical elements in the process, method, article, orapparatus that comprises the element.

The Abstract of the Disclosure is provided to allow the reader toquickly ascertain the nature of the technical disclosure. It issubmitted with the understanding that it will not be used to interpretor limit the scope or meaning of the claims. In addition, in theforegoing Detailed Description, it can be seen that various features aregrouped together in various examples for the purpose of streamlining thedisclosure. This method of disclosure is not to be interpreted asreflecting an intention that the claims require more features than areexpressly recited in each claim. Rather, as the following claimsreflect, inventive subject matter lies in less than all features of asingle disclosed example. Thus, the following claims are herebyincorporated into the Detailed Description, with each claim standing onits own as a separately claimed subject matter.

What is claimed is:
 1. A data processing system comprising: a processor;and a computer-readable storage medium storing executable instructionsthat, when executed, cause the processor to perform operationscomprising: obtaining an electronic copy of demographic informationassociated with a user, wherein the demographic information includesfirst demographic information provided by the user, demographicinformation obtained from one or more third-party data sources, or both;providing the first demographic information as an input to a firstmachine learning model; analyzing the first demographic information withthe first machine learning model, wherein the first machine learningmodel is trained to segment people into clusters of people havingsimilar demographics, wherein the first machine learning model isconfigured to analyze the first demographic information associated withthe user to predict and output a cluster associated with the user andoutput predicted medical spending information associated with thepredicted cluster; providing the predicted medical spending informationto a recommendation engine to generate a comprehensive insurance planfor the user comprising a plurality of insurance policies based on thepredicted medical spending information; customizing the comprehensiveinsurance plan based on the first demographic information associatedwith the user to generate a customized bundle of insurance policies;generating an insurance recommendation report that presents thecustomized bundle of insurance policies to the user; and causing a userinterface of a display of a computing device associated with the user topresent the insurance recommendation report.
 2. The data processingsystem of claim 1, wherein the predicted medical spending informationincludes a predicted amount spent on medical claims and types of claimstypically filed by people associated with the predicted cluster.
 3. Thedata processing system of claim 1, the computer-readable storage mediumincludes instructions configured to cause the processor to perform:dynamically generating a plurality of questions to obtain seconddemographic information for the user by identifying additionaldemographic information relevant to the user for determining insurancecoverage needs of the user using a second machine learning model, thesecond machine learning model trained to receive as an input the firstdemographic information for the user and to predict and outputadditional information demographic information relevant for determininginsurance coverage needs of the user based on the first demographicinformation; obtaining the second demographic information as responsesto the plurality of questions; and combining the second demographicinformation with the first demographic information before providing thefirst demographic information as an input to the first machine learningmodel.
 4. The data processing system of claim 3, wherein thecomputer-readable storage medium includes instructions configured tocause the processor to perform: submitting a query to one or morethird-party data providers to obtain at least a portion of theadditional demographic information identified by the second machinelearning model; receiving third-party data in response to the query; andcombining at least a portion of the third-party data with the firstdemographic information submitted to the first machine learning model.5. The data processing system of claim 1, wherein to generate theinsurance recommendation report that presents the customized bundle ofinsurance policies to the user, the computer-readable storage mediumincludes instructions configured to cause the processor to perform:obtaining a description of each insurance policy including the bundle ofinsurance policies; generating a narrative indicating why each insurancepolicy including in the bundle of insurance policies has been selectedfor the user; and generating the insurance recommendation report topresent the narrative and the description of each insurance policy. 6.The data processing system of claim 5, wherein the computer-readablestorage medium includes instructions configured to cause the processorto perform: causing a user interface of a display of a computing deviceassociated with the user to present a policy procurement user interface,the policy procurement user interface configured to guide the userthrough obtaining one or more policies included in the customized bundleof insurance policies.
 7. The data processing system of claim 6, whereinthe computer-readable storage medium includes instructions configured tocause the processor to perform: generating an insurance summary reportthat i actions that have been taken to obtain the one or more policiesand a policy information for each of the policies obtained.
 8. A methodimplemented in a data processing system for recommending insuranceplans, the method comprising: obtaining an electronic copy ofdemographic information associated with a user, wherein the demographicinformation includes first demographic information provided by the user,demographic information obtained from one or more third-party datasources, or both; providing the first demographic information as aninput to a first machine learning model; analyzing the first demographicinformation with the first machine learning model, wherein the firstmachine learning model is trained to segment people into clusters ofpeople having similar demographics, wherein the first machine learningmodel is configured to analyze the first demographic informationassociated with the user to predict and output a cluster associated withthe user and output predicted medical spending information associatedwith the predicted cluster; providing the predicted medical spendinginformation to a recommendation engine to generate a comprehensiveinsurance plan for the user comprising a plurality of insurance policiesbased on the predicted medical spending information; customizing thecomprehensive insurance plan based on the first demographic informationassociated with the user to generate a customized bundle of insurancepolicies; generating an insurance recommendation report that presentsthe customized bundle of insurance policies to the user; and causing auser interface of a display of a computing device associated with theuser to present the insurance recommendation report.
 9. The method ofclaim 8, wherein the predicted medical spending information includes apredicted amount spent on medical claims and types of claims typicallyfiled by people associated with the predicted cluster.
 10. The method ofclaim 8, further comprising: dynamically generating a plurality ofquestions to obtain second demographic information for the user byidentifying additional demographic information relevant to the user fordetermining insurance coverage needs of the user using a second machinelearning model, the second machine learning model trained to receive asan input the first demographic information for the user and to predictand output additional information demographic information relevant fordetermining insurance coverage needs of the user based on the firstdemographic information; obtaining the second demographic information asresponses to the plurality of questions; and combining the seconddemographic information with the first demographic information beforeproviding the first demographic information as an input to the firstmachine learning model.
 11. The method of claim 10, further comprising:submitting a query to one or more third-party data providers to obtainat least a portion of the additional demographic information identifiedby the second machine learning model; receiving third-party data inresponse to the query; and combining at least a portion of thethird-party data with the first demographic information submitted to thefirst machine learning model.
 12. The method of claim 8, whereingenerating the insurance recommendation report that presents thecustomized bundle of insurance policies to the user further comprises:obtaining a description of each insurance policy including the bundle ofinsurance policies; generating a narrative indicating why each insurancepolicy including in the bundle of insurance policies has been selectedfor the user; and generating the insurance recommendation report topresent the narrative and the description of each insurance policy. 13.The method of claim 12, further comprising: causing a user interface ofa display of a computing device associated with the user to present apolicy procurement user interface, the policy procurement user interfaceconfigured to guide the user through obtaining one or more policiesincluded in the customized bundle of insurance policies.
 14. The dataprocessing system of claim 13, further comprising: generating aninsurance summary report that i actions that have been taken to obtainthe one or more policies and a policy information for each of thepolicies obtained.
 15. A computer-readable storage medium on which arestored instructions that, when executed, cause a processor of aprogrammable device to perform operations of: obtaining an electroniccopy of demographic information associated with a user, wherein thedemographic information includes first demographic information providedby the user, demographic information obtained from one or morethird-party data sources, or both; providing the first demographicinformation as an input to a first machine learning model; analyzing thefirst demographic information with the first machine learning model,wherein the first machine learning model is trained to segment peopleinto clusters of people having similar demographics, wherein the firstmachine learning model is configured to analyze the first demographicinformation associated with the user to predict and output a clusterassociated with the user and output predicted medical spendinginformation associated with the predicted cluster; providing thepredicted medical spending information to a recommendation engine togenerate a comprehensive insurance plan for the user comprising aplurality of insurance policies based on the predicted medical spendinginformation; customizing the comprehensive insurance plan based on thefirst demographic information associated with the user to generate acustomized bundle of insurance policies; generating an insurancerecommendation report that presents the customized bundle of insurancepolicies to the user; and causing a user interface of a display of acomputing device associated with the user to present the insurancerecommendation report.
 16. The computer-readable storage medium of claim15, wherein the predicted medical spending information includes apredicted amount spent on medical claims and types of claims typicallyfiled by people associated with the predicted cluster.
 17. Thecomputer-readable storage medium of claim 15, the computer-readablestorage medium includes instructions configured to cause the processorto perform: dynamically generating a plurality of questions to obtainsecond demographic information for the user by identifying additionaldemographic information relevant to the user for determining insurancecoverage needs of the user using a second machine learning model, thesecond machine learning model trained to receive as an input the firstdemographic information for the user and to predict and outputadditional information demographic information relevant for determininginsurance coverage needs of the user based on the first demographicinformation; obtaining the second demographic information as responsesto the plurality of questions; and combining the second demographicinformation with the first demographic information before providing thefirst demographic information as an input to the first machine learningmodel.
 18. The computer-readable storage medium of claim 17, wherein thecomputer-readable storage medium includes instructions configured tocause the processor to perform: submitting a query to one or morethird-party data providers to obtain at least a portion of theadditional demographic information identified by the second machinelearning model; receiving third-party data in response to the query; andcombining at least a portion of the third-party data with the firstdemographic information submitted to the first machine learning model.19. The computer-readable storage medium of claim 15, wherein togenerate the insurance recommendation report that presents thecustomized bundle of insurance policies to the user, thecomputer-readable storage medium includes instructions configured tocause the processor to perform: obtaining a description of eachinsurance policy including the bundle of insurance policies; generatinga narrative indicating why each insurance policy including in the bundleof insurance policies has been selected for the user; and generating theinsurance recommendation report to present the narrative and thedescription of each insurance policy.
 20. The computer-readable storagemedium of claim 19, wherein the computer-readable storage mediumincludes instructions configured to cause the processor to perform:causing a user interface of a display of a computing device associatedwith the user to present a policy procurement user interface, the policyprocurement user interface configured to guide the user throughobtaining one or more policies included in the customized bundle ofinsurance policies.